前言:我的 Security Event 到底從哪裡來?
在Day 2中我建立了第一筆模擬的 Security Event:sample_alert.json
但是真正的資安告警到底是怎麼產生的?
如果未來希望 AI SOC Dashboard 可以分析實際的資安事件,就需要有一個來源負責觀察網路活動並產生 Alert。
因此,今天開始認識這次的第一個資安工具:Suricata。
Suricata 是一套開源的網路安全監控與威脅偵測引擎。
它可以分析經過網路介面的流量,並依照規則或協定分析結果產生不同類型的事件。
簡單來說,它的工作就是負責「看網路流量」,一旦發現值得注意的行為,就把事件記錄下來:
Network Traffic
↓
Suricata
↓
Detection / Analysis
↓
Security Event
Suricata 的能力不只限於 IDS,它同時涵蓋了幾個核心面向:
Suricata 可以使用 Detection Rules 判斷流量是否符合特定條件。
例如可以想像有一條規則:
某來源對特定服務產生符合規則的流量
↓
Suricata Rule Match
↓
產生 Alert
一條 Suricata 規則通常會包含這些關鍵元素:
也就是透過設定明確的條件告訴 Suricata:
「只要看到符合這些條件的網路流量,就直接發出一筆 Alert。」
所以,Suricata 本身的運作方式是: Traffic → Detection → Event ,它是基於嚴謹的規則與特徵比對,而不是靠生成式 AI 去猜測或判斷。
Suricata 可以將事件輸出成 EVE JSON。
JSON 對這次的實作非常方便,因為後面的 Python/FastAPI 可以直接處理。
{
"timestamp": "2026-09-16T10:30:00",
"event_type": "alert",
"src_ip": "192.168.1.20",
"dest_ip": "192.168.1.10",
"dest_port": 80,
"proto": "TCP",
"alert": {
"signature": "Example Security Alert",
"severity": 2
}
}
安裝 Suricata
sudo apt install suricata -y

找到 Suricata 設定檔
Suricata 的主要設定檔位於 /etc/suricata/,其中 suricata.yaml 是後續設定網路介面、規則及事件輸出的主要設定檔。
下載 Suricata Rules
sudo suricata-update
檢查 Suricata 設定是否正常
查看網路介面
找 eve.json
IDS 除了會發出 Alert 之外,還能記錄各種豐富的網路活動。
Suricata 能夠將事件輸出成 EVE JSON 格式。Suricata (產生事件) → FastAPI (接收與處理) → LLM (協助分析) → Dashboard (視覺化呈現)